#!/bin/sh

# This called by genscripts_extra.sh

MSP430_NAME=${EMULATION_NAME}

SCRIPT_NAME=elf32msp430
TEMPLATE_NAME=generic
EXTRA_EM_FILE=genelf
OUTPUT_FORMAT="elf32-msp430"
MACHINE=
MAXPAGESIZE=1
EMBEDDED=yes

if [ "${MSP430_NAME}" = "msp430x110" ] ; then
ARCH=msp:11
ROM_START=0xfc00
ROM_SIZE=0x3e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi

if [ "${MSP430_NAME}" = "msp430x1101" ] ; then
ARCH=msp:110
ROM_START=0xfc00
ROM_SIZE=0x3e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi

if [ "${MSP430_NAME}" = "msp430x1111" ] ; then
ARCH=msp:110
ROM_START=0xf800
ROM_SIZE=0x07e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi

if [ "${MSP430_NAME}" = "msp430x112" ] ; then
ARCH=msp:11
ROM_START=0xf000
ROM_SIZE=0xfe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x1121" ] ; then
ARCH=msp:110
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x1122" ] ; then
ARCH=msp:110
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x1132" ] ; then
ARCH=msp:110
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x122" ] ; then
ARCH=msp:12
ROM_START=0xf000
ROM_SIZE=0xfe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x1222" ] ; then
ARCH=msp:12
ROM_START=0xf000
ROM_SIZE=0xfe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x123" ] ; then
ARCH=msp:12
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x1232" ] ; then
ARCH=msp:12
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x133" ] ; then
ARCH=msp:13
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x1331" ] ; then
ARCH=msp:13
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x135" ] ; then
ARCH=msp:13
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x1351" ] ; then
ARCH=msp:13
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x147" ] ; then
ARCH=msp:14
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1K
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x148" ] ; then
ARCH=msp:14
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430x149" ] ; then
ARCH=msp:14
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430x155" ] ; then
ARCH=msp:15
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x156" ] ; then
ARCH=msp:15
ROM_START=0xa000
ROM_SIZE=0x5fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x157" ] ; then
ARCH=msp:15
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1K
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x167" ] ; then
ARCH=msp:16
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1K
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x168" ] ; then
ARCH=msp:16
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430x169" ] ; then
ARCH=msp:16
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430x1610" ] ; then
ARCH=msp:16
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x1100
RAM_SIZE=0x1400
STACK=0x2500
fi

if [ "${MSP430_NAME}" = "msp430x1611" ] ; then
ARCH=msp:16
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x1100
RAM_SIZE=0x2800
STACK=0x3900
fi

if [ "${MSP430_NAME}" = "msp430x1612" ] ; then
ARCH=msp:16
ROM_START=0x2500
ROM_SIZE=0xdae0
RAM_START=0x1100
RAM_SIZE=0x1400
STACK=0x2500
fi

if [ "${MSP430_NAME}" = "msp430x2101" ] ; then
ARCH=msp:21
ROM_START=0xFC00
ROM_SIZE=0x03e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi

if [ "${MSP430_NAME}" = "msp430x2111" ] ; then
ARCH=msp:21
ROM_START=0xF800
ROM_SIZE=0x07e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi

if [ "${MSP430_NAME}" = "msp430x2121" ] ; then
ARCH=msp:21
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x2131" ] ; then
ARCH=msp:21
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x311" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xf800
ROM_SIZE=0x07e0
RAM_START=0x0200
RAM_SIZE=128
STACK=0x280
fi

if [ "${MSP430_NAME}" = "msp430x312" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x313" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x314" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xd000
ROM_SIZE=0x2fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x315" ] ; then
ARCH=msp:31
SCRIPT_NAME=elf32msp430_3
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x323" ] ; then
ARCH=msp:32
SCRIPT_NAME=elf32msp430_3
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x325" ] ; then
ARCH=msp:32
SCRIPT_NAME=elf32msp430_3
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x336" ] ; then
ARCH=msp:33
SCRIPT_NAME=elf32msp430_3
ROM_START=0xa000
ROM_SIZE=0x5fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x337" ] ; then
ARCH=msp:33
SCRIPT_NAME=elf32msp430_3
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x412" ] ; then
ARCH=msp:41
ROM_START=0xf000
ROM_SIZE=0x0fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x413" ] ; then
ARCH=msp:41
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430x415" ] ; then
ARCH=msp:41
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x417" ] ; then
ARCH=msp:41
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x435" ] ; then
ARCH=msp:43
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430x436" ] ; then
ARCH=msp:43
ROM_START=0xa000
ROM_SIZE=0x5fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x437" ] ; then
ARCH=msp:43
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x447" ] ; then
ARCH=msp:44
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430x448" ] ; then
ARCH=msp:44
ROM_START=0x4000
ROM_SIZE=0xbfe0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430x449" ] ; then
ARCH=msp:44
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430xE423" ] ; then
ARCH=msp:42
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430xE425" ] ; then
ARCH=msp:42
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430xE427" ] ; then
ARCH=msp:42
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430xG437" ] ; then
ARCH=msp:43
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=1024
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430xG438" ] ; then
ARCH=msp:43
ROM_START=0x4000
ROM_SIZE=0xbef0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430xG439" ] ; then
ARCH=msp:43
ROM_START=0x1100
ROM_SIZE=0xeee0
RAM_START=0x0200
RAM_SIZE=0x0800
STACK=0xa00
fi

if [ "${MSP430_NAME}" = "msp430xW423" ] ; then
ARCH=msp:42
ROM_START=0xe000
ROM_SIZE=0x1fe0
RAM_START=0x0200
RAM_SIZE=256
STACK=0x300
fi

if [ "${MSP430_NAME}" = "msp430xW425" ] ; then
ARCH=msp:42
ROM_START=0xc000
ROM_SIZE=0x3fe0
RAM_START=0x0200
RAM_SIZE=512
STACK=0x400
fi

if [ "${MSP430_NAME}" = "msp430xW427" ] ; then
ARCH=msp:42
ROM_START=0x8000
ROM_SIZE=0x7fe0
RAM_START=0x0200
RAM_SIZE=0x400
STACK=0x600
fi

if [ "${MSP430_NAME}" = "msp430X" ] ; then
ARCH=msp:43
ROM_START=0x02000
ROM_SIZE=0x0dfe0
RAM_START=0x10000
RAM_SIZE=0x30000
STACK=0x600
fi
